/*  quadrant derived class for ND++ minesweeeper game
Programmer:  Prof. Scott

This class will be used as the cell type that does not hold a bomb for our game

The main functions here are the display, that will show the user either an covered cell, 
the number of neighboring cells that are bombs, or nothing if there is no bomb in any
of the eight bordering cells.

getNeigbors and setNeighbors are only defined for non-bomb cells but are virtual functions
to enable polymorphic processing with base class pointers.  bombNeighbors is the number of 
neighboring cells that are bombs.

Special note:  one design decision that was made was that the constructor should be very 
simple and as such bombNeighbors should be a known default value.  We will set it to be
-1 in the constructor that will be used for the board class as proof this cell was clicked for 
the first time.  It will then recursively branch out from this cell if there are no neighoring
cells that are bombs (and therefore all 8 neighbors can be "clicked")  Please see board.cpp
for details on this search/expand algorithm that determines as many quadrant cells as possible
and uses setNeighbors to fill in the quadrant with the appropriate number.

*/

#ifndef QUADRANT_H
#define QUADRANT_H

#include "cell.h"   // include base class

class Quadrant : public Cell {     // Quadrant inherits from Cell

 public:
  Quadrant();                // constructor, very simple
  virtual void display();    // display function that differs from bombs in that neighbors are shown when defined
  virtual int getNeighbors();  // get/set functions for private data member of neighbors; virtual to enable polymorphism
  virtual void setNeighbors(int);
 private:
  int bombNeighbors;  // -1 after constructor; 0-8 if it has been clicked (or could safely be clicked)

};

#endif
